#include <stdio.h>

// int main()
// {
//     char ch = 'w';
//     char* pch = &ch;
//     printf("%c\n",ch);
//     *pch = 'a';
//     printf("%c\n",ch);
//     return 0;
// }

// int main()
// {
//     char arr[] = "abcdef";
//     const char* p = "abcdef";
//     printf("%s\n",arr);
//     printf("%s\n",p);

//     printf("%p\n",p);

//     return 0;
// }


// int main()
// {
//     int arr[10];
//     int* parr[10];
//     char str[10]; 
//     return 0;
// }


// int main()
// {
//     int arr1[] = {1,2,3};
//     int arr2[] = {4,5,6};
//     int arr3[] = {7,8,9};

//     int *arr[] = {arr1,arr2,arr3};
//     printf("%d\n",arr[1][0]);

//     int a = *(*(arr+1) + 1);
//     printf("%d\n",a);

//     for(int i = 0; i < 3; i++)
//     {
//         for(int j = 0; j < 3; j++)
//         {
//             printf("%d ",arr[i][j]);
//         }
//         printf("\n");
//     }

//     return 0;
// }


// int main()
// {
//     int arr[10] = {1,2,3,4,5,6,7,8,9,10};
//     int (*p)[] = &arr;

//     int a = (*p)[3];
//     printf("%d\n",a); 
//     return 0;
// }


// void print(int arr[][3],int r,int c)
// {
//     for(int i = 0; i < r; i++)
//     {
//         for(int j = 0; j < c; j++)
//         {
//             printf("%d ",arr[i][j]);
//         }
//         printf("\n");
//     }
// }

// void print(int (*p)[],int r,int c)
// {
//     for(int i = 0; i < r; i++)
//     {
//         for(int j = 0; j < c; j++)
//         {
//             //printf("%d ",*((*p + i) + j));
//             printf("%d ",(*p + i)[j]);
//         }
//         printf("\n");
//     }
//     printf("数组指针\n");
// }

// int test1(void (*display)(int (*)[],int,int))
// {
//     int arr[][3] = {{1,2,3},{4,5,6},{7,8,9}};
//     display(arr,3,3);
// }

// int main()
// {
//     // int arr[][3] = {{1,2,3},{4,5,6},{7,8,9}};
//     // int (*p)[] = arr;
//     // print(arr,3,3);
//     test1(print);
//     return 0;
// }

// void test1(int arr[],int sz){}
// void test2(int* arr,int sz){};

// int main()
// {
//     int arr[10] = {1,2,3,4,5,6,7,8,9,10};
//     return 0;
// }

// void test(int** arr)
// {
//     for(int i = 0; i < 10;i++)
//     {
//         printf("%d\n",*arr+i);
//     }
// }

// int main()
// {
//     int arr[10] = {1,2,3,4,5,6,7,8,9,10};
//     // int a = 4[arr];//
//     // printf("%d\n",a);
//     test(&arr);
//     return 0;
// }

// void test(int** arr)
// {
//     for(int i = 0; i < 3;i++)
//     {
//         for(int j = 0; j < 3; j++)
//         {
//             printf("%d ",arr[i][j]);
//         }
//         printf("\n");
//     }
// }

// int main()
// {
//     int arr1[] = {1,2,3};
//     int arr2[] = {4,5,6};
//     int arr3[] = {7,8,9};
//     int* arr[] = {arr1,arr2,arr3};
//     test(arr);
//     return 0;
// }

int add(int x,int y)
{
    return x + y;
}

int main()
{
    // printf("%p\n",add);
    // printf("%p\n",&add);

    int (*pf)(int,int) = add;
    int a = pf(3,4);
    printf("%d\n",a);
    return 0;
}

